package com.doordu.soa.service.data.vo;

import java.io.Serializable;

import com.doordu.soa.service.web.annotation.DataValid;
import com.doordu.soa.service.web.em.RegexType;
import com.doordu.soa.service.web.fieldvalidator.IntegerChoiceHandler;

import io.swagger.annotations.ApiModelProperty;

public class ParkingDeviceVo extends BaseDataVo implements Serializable {

	/**
	 * @Fields serialVersionUID :
	 */
	private static final long serialVersionUID = 1L;

	@ApiModelProperty(hidden = true)
	private Long lotDeviceId;

	@ApiModelProperty(hidden = true)
	private Long watchhouseId;

	@ApiModelProperty(hidden = true)
	private Long parkingId;

	@DataValid(description = "停车场编号", maxLength = 150, minLength=2,nullable = false, regexType = RegexType.NO_SPECIALCHAR)
	@ApiModelProperty(value = "停车场编号(50)", notes = "停车场编号(50)", required = true, dataType = "string")
	private String parkingNo;// 停车场编号

	@DataValid(description = "停车场名称", maxLength = 150,minLength=2, nullable = false, regexType = RegexType.NO_SPECIALCHAR)
	@ApiModelProperty(value = "停车场名称(200)", notes = "停车场编号(50)", required = true, dataType = "string")
	private String parkingName;// 停车场名称

	@DataValid(description = "数据唯一ID", maxLength = 150, nullable = false, regexType = RegexType.NO_SPECIALCHAR)
	@ApiModelProperty(value = "数据唯一ID(50)", notes = "数据唯一ID(50)", required = true, dataType = "string")
	private String dataId;
	
	
	@DataValid(description = "岗亭名称", maxLength = 100, nullable = false, regexType = RegexType.NO_SPECIALCHAR)
	@ApiModelProperty(value = "岗亭名称(200)", notes = "岗亭名称(200)", required = true, dataType = "string")
	private String watchhouseName;

	@DataValid(description = "岗亭编号", maxLength = 50, nullable = false, regexType = RegexType.NO_SPECIALCHAR)
	@ApiModelProperty(value = "岗亭编号(50)", notes = "岗亭编号(50)", required = true, dataType = "string")
	private String watchhouseNumber;

	@DataValid(description = "设备类型", maxLength = 2, nullable = false, checkHandler = IntegerChoiceHandler.class, choice = {  1, 2, 3, 4, 5 })
	@ApiModelProperty(value = "设备类型 1摄像机 2显示屏 3广告屏 4读卡器 5岗亭电脑 ", notes = "设备类型 1摄像机 2显示屏 3广告屏 4读卡器 5岗亭电脑", required = true, dataType = "int")
	private Short deviceType;

	@DataValid(description = "设备子类型", maxLength = 50, nullable = true, regexType = RegexType.NO_SPECIALCHAR)
	@ApiModelProperty(value = "设备子类型", notes = "设备子类型", required = false, dataType = "string")
	private String subType;

	@DataValid(description = "设备ip", maxLength = 50, nullable = true)
	@ApiModelProperty(value = "设备ip(50)", notes = "设备ip(50)", required = true, dataType = "string")
	private String ip;

	@DataValid(description = "设备状态", maxLength = 2, nullable = false, checkHandler = IntegerChoiceHandler.class, choice = { 0, 1, 2 })
	@ApiModelProperty(value = "设备状态 1：在线  0:离线 ", notes = "设备状态 1：在线  0:离线", required = true, dataType = "int")
	private Short deviceStatus;

	@DataValid(description = "设备序列号", maxLength = 50, nullable = true, regexType = RegexType.NO_SPECIALCHAR)
	@ApiModelProperty(value = "设备序列号(100)", notes = "设备序列号(100)", required = false, dataType = "string")
	private String deviceSerialNo;

	@DataValid(description = "监控方向", maxLength = 2, nullable = false, checkHandler = IntegerChoiceHandler.class, choice = { 0, 1, 2 })
	@ApiModelProperty(value = "监控方向  0出口 1入口 ", notes = "监控方向  0出口 1入口", required = true, dataType = "int")
	private Short monitorDirection;

	@DataValid(description = "设备检查时间", maxLength = 50, nullable = false, regexType = RegexType.DATE_YYYY_MM_DD_HH_MM_SS)
	@ApiModelProperty(value = "设备检查时间(日期格式 yyyy-MM-dd HH:MM:SS)", notes = "设备检查时间(日期格式 yyyy-MM-dd HH:MM:SS)", required = true, dataType = "string")
	private String checkTime;

	public Long getLotDeviceId() {
		return lotDeviceId;
	}

	public void setLotDeviceId(Long lotDeviceId) {
		this.lotDeviceId = lotDeviceId;
	}

	public Long getWatchhouseId() {
		return watchhouseId;
	}

	public void setWatchhouseId(Long watchhouseId) {
		this.watchhouseId = watchhouseId;
	}

	public String getWatchhouseNumber() {
		return watchhouseNumber;
	}

	public void setWatchhouseNumber(String watchhouseNumber) {
		this.watchhouseNumber = watchhouseNumber;
	}

	public String getWatchhouseName() {
		return watchhouseName;
	}

	public void setWatchhouseName(String watchhouseName) {
		this.watchhouseName = watchhouseName;
	}

	public Short getDeviceType() {
		return deviceType;
	}

	public void setDeviceType(Short deviceType) {
		this.deviceType = deviceType;
	}

	public String getSubType() {
		return subType;
	}

	public void setSubType(String subType) {
		this.subType = subType;
	}

	public String getIp() {
		return ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}

	public Short getDeviceStatus() {
		return deviceStatus;
	}

	public void setDeviceStatus(Short deviceStatus) {
		this.deviceStatus = deviceStatus;
	}

	public String getDeviceSerialNo() {
		return deviceSerialNo;
	}

	public void setDeviceSerialNo(String deviceSerialNo) {
		this.deviceSerialNo = deviceSerialNo;
	}

	public Short getMonitorDirection() {
		return monitorDirection;
	}

	public void setMonitorDirection(Short monitorDirection) {
		this.monitorDirection = monitorDirection;
	}

	public String getCheckTime() {
		return checkTime;
	}

	public void setCheckTime(String checkTime) {
		this.checkTime = checkTime;
	}

	public Long getParkingId() {
		return parkingId;
	}

	public void setParkingId(Long parkingId) {
		this.parkingId = parkingId;
	}

	public String getParkingNo() {
		return parkingNo;
	}

	public void setParkingNo(String parkingNo) {
		this.parkingNo = parkingNo;
	}

	public String getParkingName() {
		return parkingName;
	}

	public void setParkingName(String parkingName) {
		this.parkingName = parkingName;
	}

	public String getDataId() {
		return dataId;
	}

	public void setDataId(String dataId) {
		this.dataId = dataId;
	}

	
}
